var system = Domain(
  data("Sharing statistics", 
    state -> specified,
    text -> "Elicitation = Interview, Specification = Feature requirements",
    gist -> "Statistics of sharing",
    spec -> "Statistics of how many times the user has shared a specific location.",
    owner -> "product",
	prio -> 5
  ), 
  data("Usage statistics", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
    gist -> "Usage statistics",
    spec -> "The amount of searches, shares, POI taps, reviews, ratings, where the product was used, how the product was used and when the product was used.",
    owner -> "product",
	prio -> 5
  ), 
  data("Usage statistics") has (data("Sharing statistics")), 
  feature("Developer feedback", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Context Diagram",
    gist -> "A user can give feedback to developers",
    spec -> "The product shall support the user sending feedback directly to the developers in charge of maintainance",
    owner -> "product"
  ), 
  feature("Developer feedback") enables (quality("Feedback read")), 
  feature("Execution", 
    why -> "dropped due to bad train of thought when elicitated",
    state -> dropped,
    gist -> "Requirements related to the execution",
    spec -> "The product shall limit the execution of functions and features as specified by quality requirements labeled under Execution",
    owner -> "product",
	prio -> 5
  ), 
  feature("Introduction tutorial", 
    why -> "dropped by product owner",
    state -> dropped,
    text -> "Elicitation = Brainstorming",
    gist -> "An introductory tutorial for first-time users",
    spec -> "The first time the user starts the application an introductory tutorial explaining the features of the program is given.",
	prio -> 0
  ), 
  feature("Launch screen", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Task Description",
    gist -> "A screen that is displayed during startup of the application",
    spec -> "Shown when the user has started the application and is waiting for the application to load, a launch screen is displayed.",
    owner -> "domain",
	prio -> 8
  ), 
  feature("Push notification", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Context Diagram",
    gist -> "Application can send push notifications (iOS SPECIFIC)",
    spec -> "The application should, when run in an iOS enviroment, make use of the push notification feature for updates and new coupon offers",
    owner -> "domain",
	prio -> 7
  ), 
  feature("Retake tutorial", 
    gist -> "The introductory tutorial should be retakeable",
    spec -> "There should be an option for re-taking the introductionary tutorial.",
    state -> dropped,
    why -> "dropped by product owner",
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
	prio -> 0
  ), 
  quality("Apple human guidelines", 
    gist -> "The application should follow the Apple iOS Human interface guidelines",
    spec -> "The guidelines are located at \\url{http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/Introduction/Introduction.html}",
    owner -> "domain",
    text -> "Elicitation = Documentation Studies",
    why -> "These guidelines should be followed to make the product available on Apple Appstore",
	prio -> 3
  ), 
  quality("Application resume rigidity", 
    why -> "A rigidity when resuming usage from suspension is vital for the user experience.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Task Description",
    gist -> "Resume without error in most of the cases",
    spec -> "When the system resumes usage from suspension it should do so without error in 99\\% of the times.",
    owner -> "design",
    prio -> 9
  ), 
  quality("Buffer overflow attack prevention", 
    gist -> "The system should prevent buffer overflow attacks",
    spec -> "The system should not allow the user to preform buffer overflow attacks via user sent strings. A civil engineer with 5 years of experience should not be able to perform buffer overflow attacks with the application within 5 hours.",
    owner -> "design",
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
	prio -> 5
  ), 
  quality("EULA", 
    state -> specified,
    text -> "Elicitation = Brainstorming Specification = Feature requirements",
    gist -> "End User License Agreement",
    spec -> "The application should display the End User License Agreement on the first start-up. It should also contain this information elsewhere for future reference",
    owner -> "domain",
	prio -> 3
  ), 
  quality("EULA") has (quality("Google API License")), 
  quality("Easy map view access", 
    gist -> "The map view should be easy to access",
    spec -> "9 out of 10 users should be able to get to the map view within 3 taps upon application launch.",
    text -> "Elicitation = Document studies, Specification = Feature requirements",
	prio -> 7
  ), 
  quality("Execution rigidity", 
    why -> "A product that does not crash too much is very important from a user point of view.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = QUPER",
    gist -> "Upper limit of number of crashes during use",
    spec -> "The application should be able to complete its defined tasks without crashing in 99\\% of the time. Se the Task chapter.",
    owner -> "design",
    prio -> 9
  ), 
  quality("Execution time limit", 
    why -> "If executions take too long time the user will get impatient and eventually stop using the application.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = QUPER",
    gist -> "Upper limit on the execution time",
    spec -> "The execution time of the internet based tasks, such as fetching POIs, should not exceed 1 minute before timing out.",
    owner -> "design",
	prio -> 7
  ), 
  quality("Facebook guidelines", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
    gist -> "The program should have access to Facebook API",
    spec -> "Follows \\url{http://developers.facebook.com/docs/beta/opengraph/tutorial/} as to gain access to the Facebook API for developers.",
    owner -> "domain",
	prio -> 5
  ), 
  quality("Google API License", 
    why -> "To enable the application using google map views it needs to contain the Google API EULA",
    state -> specified,
    text -> "Elicitation = Document studies, Specification = Feature requirements",
    gist -> "Contains the license agreement for Google API",
    spec -> "The End User License Agreement contains the license agreement for use of the Google API. The terms are located at \\url{http://code.google.com/apis/maps/terms.html}",
    owner -> "domain",
	prio -> 8
  ), 
  quality("Image resolution", 
    why -> "The user must have a clear view of all images.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Screenshots",
    gist -> "Should be of high resolution",
    spec -> "The images displayed in the application shall be of high enough resolution to be supported by retina displays. Eg twice the normal resolution",
    owner -> "design",
    prio -> 8
  ), 
  quality("JSON", 
    why -> "To enable use of the available JSON framework that aids in getting the information quick enough. It will also minimize the size of each package.",
    state -> specified,
    text -> "Elicitation = Document studise, Specification = Context Diagram",
    gist -> "JSON encoded data",
    spec -> "All data packages fetched from the server should be JSON encoded. ref: \\url{http://code.google.com/p/json-framework/}",
    owner -> "product",
	prio -> 6
  ), 
  quality("Network timeout", 
    why -> "It\'s unacceptable to wait more than 1 minute for a network request to complete.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
    gist -> "Network requests should have a timeout",
    spec -> "Network request should timeout when they have been pending for 1 minute.",
    owner -> "design",
	prio -> 4
  ), 
  quality("Startup time", 
    why -> "If the application takes too long time to start a user will be annoyed.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = QUPER",
    gist -> "Upper limit on application startup",
    spec -> "The launch screen should not be displayed for longer than 30 seconds in 95\\% of uses.",
    owner -> "design",
	prio -> 6
  ), 
  quality("Support for Android", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
    gist -> "Application works under Android OS",
    spec -> "The system shall be convertable to function on the Android OS platform version 2.0 to version 4.0.",
    owner -> "product",
    prio -> 9
  ), 
  quality("Support for iOS", 
    state -> specified,
    text -> "Elicitation = Brainstorming, Specifications = Feature requirements",
    gist -> "Application works under iOS",
    spec -> "The application shall function on the Apple iOS verion 3.0 to version 5.1.",
    owner -> "product",
    prio -> 9
  ), 
  quality("Tutorial coverage", 
    text -> "Elicitatiom = Brainstorming, Specification = Feature requierments",
    gist -> "Should include most of the product features",
    spec -> "The tutorial should instruct the user on how to use at least 80\\% of the available features.",
    state -> dropped,
    why -> "dropped by product owner",
	prio -> 0
  ), 
  quality("Tutorial in English", 
    text -> "Elicitation = Brainstorming, Specification = Feature erquierments",
    gist -> "Should be understood by a mixed English speaking focus group",
    spec -> "At least 80\\% of the users must be able to understand the text written in the tutorial.",
    state -> dropped,
    why -> "dropped by product owner",
	prio -> 0
  ), 
  quality("Tutorial time efficient", 
    text -> "Elicitation = Brainstorming, Specification = Feature requierments",
    gist -> "Should be able to complete the tutorial within a set time",
    spec -> "The tutorial must be completed within 2 minutes by at least 70\\% of the users.",
    state -> dropped,
    why -> "dropped by product owner",
	prio -> 0
  ), 
  quality("XSS filtering", 
    gist -> "All user sent strings should be XSS filtered",
    spec -> "All user sent strings should be XSS filtered, this is to prevent MySQL injection. A civil engineer with 5 years of experience should be unable to execute a MySQL injection within 5 hours.",
    owner -> "domain",
    text -> "Elicitation = Brainstorming, Specificaton = Feature requierments",
	prio -> 4
  ), 
  quality("iOS appstore guidelines", 
    why -> "The application should be listed on Apple App Store to increase availability.",
    state -> specified,
    text -> "Elicitation = Brainstorming, Specification = Feature requirements",
    gist -> "Follows the guidelines of the iOS appstore",
    spec -> "The product that is specified for iOS must meet the standard requirements specified by the Apple App Store guidelines found here \\url{http://developer.apple.com/appstore/guidelines.html}",
    owner -> "domain",
	prio -> 7
  )
)
